<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
	<s:head theme="ajax"/>	
	<style>
		body, input{
			font-family: Calibri, Arial;
		}
		table#contact {
			border-collapse: collapse;
			width:550px;
		}
		th {
			height: 40px;
			background-color: #ffee55;
		}
	</style>
	<title>Cliente Manager - Project Live!</title>
	<script>
	
	
		function ControllaPIVA(pi) {
			if (pi == '')
				return '';
			if (pi.length != 11)
				return "La lunghezza della partita IVA non è\n"
						+ "corretta: la partita IVA dovrebbe essere lunga\n"
						+ "esattamente 11 caratteri.\n";
			validi = "0123456789";
			for (i = 0; i < 11; i++) {
				if (validi.indexOf(pi.charAt(i)) == -1)
					return "La partita IVA contiene un carattere non valido `"
							+ pi.charAt(i)
							+ "'.\nI caratteri validi sono le cifre.\n";
			}
			s = 0;
			for (i = 0; i <= 9; i += 2)
				s += pi.charCodeAt(i) - '0'.charCodeAt(0);
			for (i = 1; i <= 9; i += 2) {
				c = 2 * (pi.charCodeAt(i) - '0'.charCodeAt(0));
				if (c > 9)
					c = c - 9;
				s += c;
			}
			if ((10 - s % 10) % 10 != pi.charCodeAt(10) - '0'.charCodeAt(0))
				return "La partita IVA non è valida:\n"
						+ "il codice di controllo non corrisponde.\n";
			return '';
		}
		
		
		function ControllaCF(cf) {
			var validi, i, s, set1, set2, setpari, setdisp;
			if (cf == '')
				return '';
			cf = cf.toUpperCase();
			if (cf.length != 16)
				return "La lunghezza del codice fiscale non è\n"
						+ "corretta: il codice fiscale dovrebbe essere lungo\n"
						+ "esattamente 16 caratteri.\n";
			validi = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
			for (i = 0; i < 16; i++) {
				if (validi.indexOf(cf.charAt(i)) == -1)
					return "Il codice fiscale contiene un carattere non valido `"
							+ cf.charAt(i)
							+ "'.\nI caratteri validi sono le lettere e le cifre.\n";
			}
			set1 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
			set2 = "ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ";
			setpari = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
			setdisp = "BAKPLCQDREVOSFTGUHMINJWZYX";
			s = 0;
			for (i = 1; i <= 13; i += 2)
				s += setpari.indexOf(set2.charAt(set1.indexOf(cf.charAt(i))));
			for (i = 0; i <= 14; i += 2)
				s += setdisp.indexOf(set2.charAt(set1.indexOf(cf.charAt(i))));
			if (s % 26 != cf.charCodeAt(15) - 'A'.charCodeAt(0))
				return "Il codice fiscale non è corretto:\n"
						+ "il codice di controllo non corrisponde.\n";
			return "";
		}

		function verifica() {
			cod = document.getElementById("codicefiscale").value;
			piva = document.getElementById("partitaiva").value;

			if ((cod != '' && piva != '') || (cod == '' && piva != '')) {

				//Partita Iva
				if (piva.length == 11)
					err = ControllaPIVA(piva);
				else
					err = "Il codice introdotto non e' valido:\n\n"
							+ "  - una partita IVA deve essere lunga 11 caratteri.\n";

			} else if (cod != '' && piva == '') {

				//Codice Fiscale
				if (cod.length == 16)
					err = ControllaCF(cod);
				else
					err = "Il codice introdotto non e' valido:\n\n"
							+ "  - un codice fiscale deve essere lungo 16 caratteri;\n\n";

			} else if (cod == '' && piva == '') {

				err = "Devi inserire almeno un CodiceFiscale/PartitaIva";
			}

			if (err > '')
				alert("VALORE ERRATO\n\n" + err + "\nCorreggi e riprova!");
			else
				alert("Il codice e' valido.");

		}
	</script>
</head>
<body>
	<div id="insDiv" class="insDiv">
		<h1> 
			<img class="insDivImg insDivImgOpen" src="images/arr-open.png"/> 
			<span>Inserimento Cliente</span>
		</h1>
	</div>	
	<s:actionerror/>

	<div id="insBox" class="insBox">
		<s:form name="form1" action="addCliente" method="post" theme="simple">
			<s:hidden name="id" value="%{id}"/>
			<table>
				<tr>
					<td><s:label value="Nome:"/></td>
					<td><s:textfield name="cliente.nome"/></td>
					<td><s:label value="Cognome:"/></td>
					<td><s:textfield name="cliente.cognome"/></td>
					<td><s:label value="Data Nascita:"/></td>
					<td><s:datetimepicker name="cliente.datanascita" displayFormat="dd/MM/yyyy" required="true" />
				</tr>
				<tr>		
					<td><s:label value="Cell:"/></td>
					<td><s:textfield name="cliente.cell"/></td>
					<td><s:label value="Email:"/></td>
					<td><s:textfield name="cliente.email"/></td>
					<td><s:label value="Website:"/></td>
					<td><s:textfield name="cliente.website"/></td>
				</tr>
				<tr>
					<td><s:label value="Partita Iva:"/></td>
					<td><s:textfield id="partitaiva" name="cliente.partitaiva"/></td>
					<td><s:label value="Codice Fiscale:"/></td>
					<td><s:textfield id="codicefiscale" name="cliente.codicefiscale"/></td>
					<td><input type="button" name="b1" value="Controlla" onclick="verifica()"></td>
				</tr>	
			</table>
			<s:submit value="Salva Cliente" align="center"/>
		</s:form>
	</div>	


	<h2>Lista Clienti</h2>
	<table id="rounded-corner">
		<tr>
			<th class="textCenter">#</th>
			<th class="textLeft">Nome</th>
			<th class="textLeft">Cognome</th>
			<th class="textLeft">Cell</th>
			<th class="textLeft">Email</th>
			<th class="textLeft">WebSite</th>
			<th class="textLeft">Partita Iva</th>
			<th class="textLeft">Codice Fiscale</th>
			<th class="textLeft">Data Nascita</th>
			<th class="width10 textCenter">Modifica</th>
			<th class="width10 textCenter">Elimina</th>
		</tr>
		<s:iterator value="clienti">
			<tr>
				<td class="textCenter">
					<s:property value="id"/>
				</td>
				<td class="textLeft">
					<s:property value="nome"/>
				</td>
				<td class="textLeft">
					<s:property value="cognome"/>
				</td>
				<td class="textLeft">
					<s:property value="cell"/>
				</td>
				<td class="textLeft">
					<s:property value="email"/>
				</td>
				<td class="textLeft">
					<a href="<s:property value="website"/>">link</a>
				</td>
				<td class="textLeft">
					<s:property value="partitaiva"/>
				</td>
				<td class="textLeft">
					<s:property value="codicefiscale"/>
				</td>
				<td class="textLeft">
					<s:property value="datanascita"/>
				</td>
				<td>
					 <s:form theme="simple">			        
				        <s:submit action="editCliente" value="Modifica"/>
				        <s:hidden name="id" value="%{id}"/>
				    </s:form>
				</td>
				<td>
					 <s:form theme="simple">			        
				        <s:submit action="deleteCliente" value="Elimina" 
				        	onclick="return confirm('Are you sure you want to delete this item?');"/>
				        <s:hidden name="id" value="%{id}"/>
				    </s:form>
				</td>
			</tr>	
		</s:iterator>
	</table>
</body>
</html>